/*
 * Sesame Inc.
 * Copyright (c) 2009 All Rights Reserved.
 */
package com.sesame.daoimpl;

import java.util.List;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

import com.sesame.dao.AlbumTagDAO;
import com.sesame.domain.AlbumTag;
import com.sesame.domain.TagCloud;

/**
 * @author shubeta
 * 
 */
public class AlbumTagDAOImpl extends SqlMapClientDaoSupport implements
        AlbumTagDAO {

    public void addAlbumTag(AlbumTag albumtag) {
        getSqlMapClientTemplate().insert("addAlbumTag", albumtag);
    }

    public void deleteAlbumTagById(Integer id) {
        getSqlMapClientTemplate().delete("deleteAlbumTagById", id);
    }

    public void deleteAlbumTagByAlbumId(Integer albumId) {
        getSqlMapClientTemplate().delete("deleteAlbumTagByAlbumId", albumId);
    }

    @SuppressWarnings("unchecked")
    public List<TagCloud> getAllAlbumTag() {
        return getSqlMapClientTemplate().queryForList("getAllAlbumTag");
    }

    public AlbumTag getAlbumTagById(Integer id) {
        return (AlbumTag) getSqlMapClientTemplate().queryForObject(
                "getAlbumTagById", id);
    }

    public List<AlbumTag> getAlbumTagByTag(String tag) {
        return (List<AlbumTag>) getSqlMapClientTemplate().queryForList(
                "getAlbumTagByTag", tag);
    }

    public AlbumTag getAlbumTagByTagAndUserId(AlbumTag tag) {
        return (AlbumTag) getSqlMapClientTemplate().queryForObject(
                "getAlbumTagByTagAndUserId", tag);
    }

    public List<AlbumTag> getAlbumTagByAlbumId(Integer albumId) {
        return (List<AlbumTag>) getSqlMapClientTemplate().queryForList(
                "getAlbumTagByAlbumId", albumId);
    }

    public void updateAlbumTag(AlbumTag albumtag) {
        getSqlMapClientTemplate().update("updateAlbumTag", albumtag);
    }

}